
#pragma once

#include "zdbmain.h"

#include "zrxprotevnt.h"

#pragma pack(push, 8)

class UcDbAppEntityGrips : public UcRxProtocolReactor
{
public:

    UCRX_DECLARE_MEMBERS(UcDbAppEntityGrips);
    virtual Ucad::ErrorStatus getGripPoints (
                                        UcDbGripDataPtrArray& grips,
                                        const double          curViewUnitSize,
                                        const int             gripSize,
                                        const UcGeVector3d&   curViewDir,
                                        const int             bitflags,
                                        UcDbEntity*           pEntity) = 0;
    virtual Ucad::ErrorStatus moveGripPointsAt (
                         const UcDbVoidPtrArray&        gripAppData,
                         const UcGeVector3d&            offset,
                         const int                      bitflags,
                         UcDbEntity*                    pEntity) = 0;
    virtual void gripStatus(const UcDb::GripStat status,
                            UcDbEntity*          pEntity) = 0;
};

class UcDbBlockInsertionPoints :  public UcRxProtocolReactor
{
    public:

        UCRX_DECLARE_MEMBERS(UcDbBlockInsertionPoints);
        virtual Ucad::ErrorStatus getInsertionPoints (
                        const UcDbBlockTableRecord* pBlock,
                        const UcDbBlockReference*   pBlkRef,
                        UcGePoint3dArray&           insPts,
                        UcGeVector3dArray&          alignmentDirections) = 0;
};

#pragma pack(pop)
